#include 	"../includes.h"
#include "udp_includes.h"

int msg_unpack_header(UDP_DAEMON_* ud)
{
	int16u len;
	char str[11], str1[11];
	int lenForCrc;
	int16u crc ,crc_calculated,crc1,crc2 ;
	int8u *p,*p1;


//	printf("msg_unpack_header\n");

	//if(udp.net.ibuf_len < 100) return 0;
	if(udp.net.ibuf_len < 5) return 0;

	if( (CONFIG.iCVType) && (VME.Data.TimeSync_Mode==VME_CV_MODE) && (CONFIG.NETSEND) )//Slave
	{
		oemv3_msg_rcvd((char*)&ud->net.ibuf, 0, udp.net.ibuf_len, MDATA, fdEB);  //master data parsing
		Compare();
//		if(FINE_Flag == ON)
//			Compare();
//		else
//			return 0;
//
	}


	//memcpy( pIn, &ud->net.ibuf, min(ud->net.ibuf_len, IPC_KTI_DATA_LENGTH) );
  	udp_printf("\r\n ------------ %d \r\n",udp.net.ibuf_len);
		udp_MemoryHexDump((char*)&ud->net.ibuf,udp.net.ibuf_len);
 //msg_respond(pIn->buf, pIn->ipc.command, pIn->ipc.len );
    return 0;
}

//extern _st_server_download DLs;
// event call
int msg_respond(char *ptr,int cmd, int len)
{
	KTI_SubData_DL_CmdRsp_T *p  =(KTI_SubData_DL_CmdRsp_T *)ptr;
	KTI_SubData_DL_DataRsp_T *p1 =(KTI_SubData_DL_DataRsp_T *)ptr;

	switch(cmd){
//		case KTC_DL_CMD_RSP:
//			if( DLs.Step == dns_req ){
//				init_DL(DLs);
//				if( p->ready ){
//					 DLs.bResult = 1;
//                }
//			}
//			break;
//		case KTC_DL_DATA_RSP:
//			if( DLs.Step == dns_data ){
//				DLs.bResult = 1;
//				init_DL(DLs);
//			}
//			break;
//		case KTC_DL_COMPLETE_RSP:
//			if( DLs.Step == dns_data_complete ){
//				DLs.bResult = 1;
//				init_DL(DLs);
//			}
//			break;
		case KTC_CONTRL_REQ:
		case KTC_LOCAL_REQ:
		case KTC_IP_CHANGE_REQ:
		case KTC_RESET_REQ:
		case KTC_STATUS_REQ:
		case KTC_MAC_ADDR_REQ:
		case KTC_ALARM_REPORT:
		case KTC_HEARTBEAT_REQ:
			if( !DuringDownloading() ) msg_client_respond_req(ptr,cmd,len);
			break;

		case KTC_DL_CMD_REQ:
		case KTC_DL_DATA:
		case KTC_DL_COMPLETE_REQ:
			msg_client_respond_download(ptr,cmd,len);
			break;
	}
	return 0;
}

